DECLARE FUNCTION BinDec& (Binary$)

PRINT BinDec&("1010")      ' 10
PRINT BinDec&("11111111")  ' 255
PRINT BinDec&("100000000") ' 256

END

FUNCTION BinDec& (Binary$)
    DIM Result&
    DIM I%
    DIM Ch$

    Result& = 0

    FOR I% = 1 TO LEN(Binary$)
        Ch$ = MID$(Binary$, I%, 1)

        IF Ch$ = "0" OR Ch$ = "1" THEN
            Result& = Result& * 2 + VAL(Ch$)
        ELSE
            BinDec& = -1
            EXIT FUNCTION
        END IF
    NEXT I%

    BinDec& = Result&
END FUNCTION